//链接：https://ac.nowcoder.com/acm/contest/76795/B
//来源：牛客网
//
//白垩色的王子给了你一个由n 个数组成的数列，并告诉你，你需要执行n−1 次如下操作：选定一个数列中的数x，再选择数列中的至少一个其他数，
//然后让这些数都加上x，再将x 移除出这个数列。n−1 次操作过后，数列中最后只会剩下一个数。白垩色的王子希望你告诉他，
//最后剩下的那个数最小是多少。题目保证最后输出的答案的绝对值
//链接：https ://ac.nowcoder.com/acm/contest/76795/B
//来源：牛客网
//
//示例1
//输入
//复制
//2
//2
//1 2
//4
//- 1 8 - 2 0
//输出
//3
//- 2
//
//说明对于第一组数据：一种方案是令2 加1，结果为3
//对于第二组数据：一种方案是先令其他三个数各加上−2，数列变为−3, 6, −2，再令其他两个数各加上−3，数列变为3, −5，最后令−5 加上3，结果为−2。

#include <iostream>
#include <algorithm>
using namespace std;

//#define int long long 
typedef long long LL;

//对于题目给定的数据范围，有必要选择一种合理的数据类型来高效处理问题
//long long的范围大概是10 ^ 18, int的范围大概是1e9 +
//1.#define int long long
//main函数要改成有符号型 signed main()
//
//2.long long 不仅费空间，还容易超时
//
//3.变量类型为 long long，也可以用 typedef long long ll（直接用ll代替long long的定义）

const int N = 5e5 + 10;

LL a[N];

int main()
{
	int t;
	ios::sync_with_stdio(0);
	cin.tie(0);
	cout.tie(0);
	cin >> t;
	while (t--)
	{
		int n;
		cin >> n;
		LL sum = 0;
		int cnt = 0, k = 0;

		for (int i = 1; i <= n; i++)
		{
			cin >> a[i];
		}

		sort(a + 1, a + 1 + n);

		for (int i = 1; i <= n; i++)
		{
			a[i] += sum;
			if (a[i] < 0) sum += a[i];
			else if (i != n) a[n] += a[i];
		}

		cout << a[n] << endl;
	}

	return 0;
}